# How to Learn Scala - [[how to]] [[learn]] [[scala]] - [[by]] [[s5bug]] - [[quote]] first, learn scala itself: - getting started: https://docs.scala-lang.org/getting-started/index.html - tour of scala: https://docs.scala-lang.org/tour/tour-of-scala.html - scala book: https://docs.scala-lang.org/overviews/scala-book/introduction.html - essential scala https://underscore.io/books/essential-scala - programming in scala (4th ed.) by martin odersky - online tutorial: https://www.scala-exercises.org/scala_tutorial/terms_and_types - stdlib exercises: https://www.scala-exercises.org/std_lib/asserts - [[quote]] then learn fp: - functional programming in scala (2014) by chiusano and bjarnason - scala with cats https://scalawithcats.com/ - herding cats: http://eed3si9n.com/herding-cats - exercises: https://www.scala-exercises.org/cats/semigroup - [[quote]] further resources: - cats website: https://typelevel.org/cats - cats-effect website: https://typelevel.org/cats-effect (IO monad for scala) - fs2 streaming (for streaming + control flow): https://fs2.co/ - http4s for http-ing: https://http4s.org/ - category theory for programmers: https://github.com/hmemcpy/milewski-ctfp-pdf